--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit f97bdff184dae0af9a9acc2c8d4528fb782a46ff
Parents : 586cb97
Author : Ivan <ivan@quad4.io>
Signature : Signature validation error
Date : 2026-06-06T17:42:40-05:00
chore(dependencies): update pnpm lockfile and workspace overrides to use strip-ansi version 6.0.1 and ansi-regex version 5.0.1; adjust debug and http-cache-semantics versions in various dependencies
Changes
6 files changed, 59 insertions(+), 67 deletions(-)
Diff
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c7df04dd..3e5dd396 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,6 +8,8 @@ overrides:
'@electron/get': 3.1.0
ajv: '>=6.14.0'
ansi-regex: '>=6.0.1'
+ strip-ansi: 6.0.1
+ strip-ansi>ansi-regex: 5.0.1
braces: '>=3.0.3'
brace-expansion: '>=1.1.13'
browserslist: '>=4.16.5'
@@ -1405,9 +1407,9 @@ packages:
resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==}
engines: {node: '>=12'}
- ansi-regex@6.2.2:
- resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
- engines: {node: '>=12'}
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
ansi-styles@4.0.0:
resolution: {integrity: sha512-8zjUtFJ3db/QoPXuuEMloS2AUf79/yeyttJ7Abr3hteopJu9HK8vsgGviGUMq+zyA6cZZO6gAyZoMTF6TgaEjA==}
@@ -4260,30 +4262,10 @@ packages:
string_decoder@1.1.1:
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
- strip-ansi@3.0.0:
- resolution: {integrity: sha512-leU/wDjPxUZLHqEy4mYnNETRx1jAO1BJ6oTgn9PQWeAiO8kfng2LBq1iXYsN8UYPPRmAizc51nUY6w2Nv12Hog==}
- engines: {node: '>=0.10.0'}
-
- strip-ansi@4.0.0:
- resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==}
- engines: {node: '>=4'}
-
- strip-ansi@6.0.0:
- resolution: {integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==}
- engines: {node: '>=8'}
-
strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
- strip-ansi@7.0.0:
- resolution: {integrity: sha512-UhDTSnGF1dc0DRbUqr1aXwNoY3RgVkSWG8BrpnuFIxhP57IqbS7IRta2Gfiavds4yCxc5+fEAVVOgBZWnYkvzg==}
- engines: {node: '>=12'}
-
- strip-ansi@7.0.1:
- resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==}
- engines: {node: '>=12'}
-
strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
@@ -5722,8 +5704,8 @@ snapshots:
'@isaacs/cliui@8.0.2':
dependencies:
string-width: 5.1.2
- string-width-cjs: string-width@4.2.0
- strip-ansi: 7.0.1
+ string-width-cjs: string-width@4.2.3
+ strip-ansi: 6.0.1
strip-ansi-cjs: strip-ansi@6.0.1
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
@@ -6466,7 +6448,7 @@ snapshots:
dependencies:
type-fest: 1.0.2
- ansi-regex@6.2.2: {}
+ ansi-regex@5.0.1: {}
ansi-styles@4.0.0:
dependencies:
@@ -6811,26 +6793,26 @@ snapshots:
cliui@4.0.0:
dependencies:
string-width: 2.1.1
- strip-ansi: 4.0.0
+ strip-ansi: 6.0.1
wrap-ansi: 2.0.0
cliui@6.0.0:
dependencies:
string-width: 4.2.0
- strip-ansi: 6.0.0
+ strip-ansi: 6.0.1
wrap-ansi: 6.2.0
cliui@7.0.0:
dependencies:
string-width: 4.2.0
- strip-ansi: 6.0.0
+ strip-ansi: 6.0.1
wrap-ansi: 7.0.0
optional: true
cliui@7.0.2:
dependencies:
string-width: 4.2.0
- strip-ansi: 6.0.0
+ strip-ansi: 6.0.1
wrap-ansi: 7.0.0
cliui@8.0.1:
@@ -8007,7 +7989,7 @@ snapshots:
dependencies:
'@tootallnate/once': 3.0.1
agent-base: 6.0.2
- debug: 4.3.2
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -8033,7 +8015,7 @@ snapshots:
https-proxy-agent@5.0.1:
dependencies:
agent-base: 6.0.2
- debug: 4.3.2
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -8053,7 +8035,7 @@ snapshots:
humanize-ms@1.2.1:
dependencies:
- ms: 2.1.3
+ ms: 2.1.2
iconv-corefoundation@1.1.7:
dependencies:
@@ -8522,7 +8504,7 @@ snapshots:
ansi-escapes: 5.0.0
cli-cursor: 4.0.0
slice-ansi: 5.0.0
- strip-ansi: 7.0.1
+ strip-ansi: 6.0.1
wrap-ansi: 8.1.0
lowercase-keys@2.0.0: {}
@@ -8557,7 +8539,7 @@ snapshots:
dependencies:
agentkeepalive: 4.6.0
cacache: 16.1.3
- http-cache-semantics: 4.2.0
+ http-cache-semantics: 4.1.1
http-proxy-agent: 5.0.0
https-proxy-agent: 5.0.1
is-lambda: 1.0.1
@@ -8901,7 +8883,7 @@ snapshots:
is-interactive: 1.0.0
log-symbols: 4.0.0
mute-stream: 0.0.8
- strip-ansi: 6.0.0
+ strip-ansi: 6.0.1
wcwidth: 1.0.1
os-locale@3.1.0:
@@ -9477,7 +9459,7 @@ snapshots:
socks-proxy-agent@7.0.0:
dependencies:
agent-base: 6.0.2
- debug: 4.3.2
+ debug: 4.4.3
socks: 2.7.1
transitivePeerDependencies:
- supports-color
@@ -9558,23 +9540,23 @@ snapshots:
dependencies:
code-point-at: 1.1.0
is-fullwidth-code-point: 1.0.0
- strip-ansi: 3.0.0
+ strip-ansi: 6.0.1
string-width@2.0.0:
dependencies:
is-fullwidth-code-point: 2.0.0
- strip-ansi: 3.0.0
+ strip-ansi: 6.0.1
string-width@2.1.1:
dependencies:
is-fullwidth-code-point: 2.0.0
- strip-ansi: 4.0.0
+ strip-ansi: 6.0.1
string-width@4.2.0:
dependencies:
emoji-regex: 8.0.0
is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.0
+ strip-ansi: 6.0.1
string-width@4.2.3:
dependencies:
@@ -9586,19 +9568,19 @@ snapshots:
dependencies:
emoji-regex: 9.2.2
is-fullwidth-code-point: 4.0.0
- strip-ansi: 7.0.0
+ strip-ansi: 6.0.1
string-width@5.0.1:
dependencies:
emoji-regex: 9.2.2
is-fullwidth-code-point: 4.0.0
- strip-ansi: 7.0.1
+ strip-ansi: 6.0.1
string-width@5.1.2:
dependencies:
eastasianwidth: 0.2.0
emoji-regex: 9.2.2
- strip-ansi: 7.0.1
+ strip-ansi: 6.0.1
string.prototype.trim@1.2.10:
dependencies:
@@ -9629,29 +9611,9 @@ snapshots:
dependencies:
safe-buffer: 5.1.2
- strip-ansi@3.0.0:
- dependencies:
- ansi-regex: 6.2.2
-
- strip-ansi@4.0.0:
- dependencies:
- ansi-regex: 6.2.2
-
- strip-ansi@6.0.0:
- dependencies:
- ansi-regex: 6.2.2
-
strip-ansi@6.0.1:
dependencies:
- ansi-regex: 6.2.2
-
- strip-ansi@7.0.0:
- dependencies:
- ansi-regex: 6.2.2
-
- strip-ansi@7.0.1:
- dependencies:
- ansi-regex: 6.2.2
+ ansi-regex: 5.0.1
strip-bom@3.0.0: {}
@@ -10204,7 +10166,7 @@ snapshots:
dependencies:
ansi-styles: 4.0.0
string-width: 4.2.0
- strip-ansi: 6.0.0
+ strip-ansi: 6.0.1
wrap-ansi@7.0.0:
dependencies:
@@ -10216,7 +10178,7 @@ snapshots:
dependencies:
ansi-styles: 6.1.0
string-width: 5.0.1
- strip-ansi: 7.0.1
+ strip-ansi: 6.0.1
wrappy@1.0.0: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 9f84b083..181799d1 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -18,6 +18,8 @@ overrides:
"@electron/get": "3.1.0"
ajv: ">=6.14.0"
ansi-regex: ">=6.0.1"
+ strip-ansi: "6.0.1"
+ "strip-ansi>ansi-regex": "5.0.1"
braces: ">=3.0.3"
brace-expansion: ">=1.1.13"
browserslist: ">=4.16.5"
diff --git a/pytest.ini b/pytest.ini
index 3fa89f06..5abb60f6 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -4,6 +4,7 @@ python_files = test_*.py
python_functions = test_*
markers =
integration: optional tests (live network, subprocess Reticulum, etc.)
+ lxst_real: tests that require the real LXST Telephone class
long_running: multi-minute soak tests (set MESHCHAT_LONG_TEST_SECONDS; see test_long_running_stress.py)
asyncio_mode = auto
asyncio_default_fixture_loop_scope = function
diff --git a/tests/backend/conftest.py b/tests/backend/conftest.py
index 3dc2cd71..58aa0246 100644
--- a/tests/backend/conftest.py
+++ b/tests/backend/conftest.py
@@ -90,6 +90,28 @@ def cleanup_sqlite_connections():
gc.collect()
+def _uses_real_lxst_telephone(request) -> bool:
+ return request.node.get_closest_marker("lxst_real") is not None
+
+
+@pytest.fixture(autouse=True)
+def stub_lxst_telephone_unless_real(request):
+ """Avoid LXST background announce threads during ReticulumMeshChat tests."""
+ if _uses_real_lxst_telephone(request):
+ yield
+ return
+
+ mock_instance = MagicMock()
+ mock_instance.busy = False
+ mock_instance.call_status = 3
+ mock_instance.active_call = None
+ with patch(
+ "meshchatx.src.backend.telephone_manager.Telephone",
+ return_value=mock_instance,
+ ):
+ yield mock_instance
+
+
@pytest.fixture
def temp_db(tmp_path):
db_path = os.path.join(tmp_path, "test_meshchat.db")
diff --git a/tests/backend/fixtures/http_api_routes.json b/tests/backend/fixtures/http_api_routes.json
index 94e22784..fb6719a1 100644
--- a/tests/backend/fixtures/http_api_routes.json
+++ b/tests/backend/fixtures/http_api_routes.json
@@ -860,6 +860,10 @@
"method": "GET",
"path": "/api/v1/rnsh/sessions/{session_id}/output"
},
+ {
+ "method": "POST",
+ "path": "/api/v1/rnsh/sessions/{session_id}/resize"
+ },
{
"method": "POST",
"path": "/api/v1/rnsh/sessions/{session_id}/start"
diff --git a/tests/backend/test_lxst_integration.py b/tests/backend/test_lxst_integration.py
index 8ed85bcd..df34af0e 100644
--- a/tests/backend/test_lxst_integration.py
+++ b/tests/backend/test_lxst_integration.py
@@ -12,6 +12,7 @@ from unittest.mock import MagicMock
import pytest
pytest.importorskip("LXST")
+pytestmark = pytest.mark.lxst_real
from LXST.Primitives import Telephony as LXSTTelephony
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────